package cn.edu.ncut.cs.springboot.petmanagementsystem.service;

import cn.edu.ncut.cs.springboot.petmanagementsystem.common.PageResult;
import cn.edu.ncut.cs.springboot.petmanagementsystem.dto.ProductReviewRequest;
import cn.edu.ncut.cs.springboot.petmanagementsystem.dto.ServiceReviewRequest;
import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.ProductReview;
import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.ServiceReview;

/**
 * 评价服务接口
 */
public interface ReviewService {

    /**
     * 创建商品评价
     *
     * @param userId 用户ID
     * @param username 用户名
     * @param request 评价请求
     * @return 评价记录
     */
    ProductReview createProductReview(Long userId, String username, ProductReviewRequest request);

    /**
     * 获取商品评价列表
     *
     * @param productId 商品ID
     * @param page 页码
     * @param pageSize 每页大小
     * @return 评价列表分页结果
     */
    PageResult<ProductReview> getProductReviews(Long productId, Integer page, Integer pageSize);

    /**
     * 创建服务评价
     *
     * @param userId 用户ID
     * @param username 用户名
     * @param request 评价请求
     * @return 评价记录
     */
    ServiceReview createServiceReview(Long userId, String username, ServiceReviewRequest request);

    /**
     * 获取服务评价列表
     *
     * @param serviceTypeId 服务类型ID
     * @param page 页码
     * @param pageSize 每页大小
     * @return 评价列表分页结果
     */
    PageResult<ServiceReview> getServiceReviews(Long serviceTypeId, Integer page, Integer pageSize);
}
